#File Containing self-defined functions for customization
source("Generic.R")
df = read_excel("TravaDB.xlsx", sheet = 1) #Tissue Data
New names:
* `Seedling Hypocotyl (S.H)` -> `Seedling Hypocotyl (S.H)...2`
* `Seedling Cotyledons (S.C)` -> `Seedling Cotyledons (S.C)...3`
* `Seedling Meristem (S.M)` -> `Seedling Meristem (S.M)...4`
* `Seedling Root (S.R)` -> `Seedling Root (S.R)...5`
* `Root Apex (R.A)` -> `Root Apex (R.A)...6`
* ... and 133 more problems
base = read_excel("Network_Cutoff_Backup.xlsx") #Interaction Data
map = read_excel("Mapping.xlsx") #Gene Name Mapping Data
conf = read_excel("Known_LRR-RLKs.xlsx")
base = data_norm(base, base = TRUE) #Normalizing Data Frame Title
base = mapper(base, map) #Mapping Gene Nicknames to Names
g = graph_from_data_frame(base, directed = FALSE, vertices = NULL) #Constructing Interaction Network
a_r = data.frame(Gene = df$Gene, Value = (df$`Root (R )...7`+df$`Root (R )...76`)/2) #Whole Root
a_l = data.frame(Gene = df$Gene, Value = (df$`Leaf, mature (L.lg)...18` + df$`Leaf, mature (L.lg)...87`)/2) #Leaf
sg1 = rest_subgraph(g, base, a_r, 1, F) #Subgraph for Root
sg2 = rest_subgraph(g, base, a_l, 1, F) #Subgraph for Leaf
#Essential Parameters of the Subgraph
cg = cluster_walktrap(g, steps = 8)
c1 = cluster_walktrap(sg1, steps = 8)
c2 = cluster_walktrap(sg2, steps = 8)
prg = page_rank(g, directed = F)
pr1 = page_rank(sg1, directed = F)
pr2 = page_rank(sg2, directed = F)
b = betweenness(g, directed = F)
b1 = betweenness(sg1, directed = F)
b2 = betweenness(sg2, directed = F)
d = Degree = degree(g)
d1 = Degree = degree(sg1)
d2 = Degree = degree(sg2)
auth = authority_score(g)
auth1 = authority_score(sg1)
auth2 = authority_score(sg2)
#Original Network
show(visPlot(g, cg$membership, prg$vector))
#Plot: FPKM Whole Root over 2 samples
ggplot(df, aes(x=`Root (R )...7`,y=`Root (R )...76`))+geom_point()+theme_bw() + stat_smooth(aes(group=1), method = "lm",color="red",se=F)

#Plot: FPKM Mature Leaf over 2 samples
ggplot(df, aes(x=`Leaf, mature (L.lg)...18`,y=`Leaf, mature (L.lg)...87`))+geom_point()+theme_bw() +stat_smooth(aes(group=1), method = "lm",color="red",se=F)

#Histogram of FPKM Distribution: Whole Root (Averaged)
ggplot(a_r,aes(x=Value))+geom_histogram(bins = 100)+theme_bw()

#Histogram of FPKM Distribution: Mature Leaf (Averaged)
ggplot(a_l,aes(x=Value))+geom_histogram(bins = 100)+theme_bw()

#Network: Whole Root Restricted
show(visPlot(sg1, c1$membership, pr1$vector))
#Network: Mature Leaf Restricted
show(visPlot(sg2, c2$membership, pr2$vector))
#Plot: Pagerank Values of Gene in Whole Root Restricted vs Pagerank in Base Network
comp1 = data.frame(Parent = prg$vector[names(prg$vector) %in% names(pr1$vector)], Restricted = pr1$vector)
Gene = rownames(comp1)
plt = ggplot(comp1, aes(x=Parent,y=Restricted,name=Gene)) + geom_point() + theme_bw() + stat_smooth(aes(group=1), method = "lm",color="red",se=F)
ggplotly(plt)
#Plot: Pagerank Values of Gene in Mature Leaf Restricted vs Pagerank in Base Network
comp2 = data.frame(Parent = prg$vector[names(prg$vector) %in% names(pr2$vector)], Restricted = pr2$vector)
Gene = rownames(comp2)
plt = ggplot(comp2, aes(x=Parent,y=Restricted,name=Gene)) + geom_point() + theme_bw() + stat_smooth(aes(group=1), method = "lm",color="red",se=F)
ggplotly(plt)
#Plot: Degree of Gene in Whole Root Restricted vs Degree in Base Network
temp1 = data.frame(Degree_Initial = d[names(d) %in% names(d1)], Degree_Restricted = d1)
Gene1 = names(d1)
plt = ggplot(temp1, aes(x = Degree_Initial, y=Degree_Restricted,name=Gene1)) + geom_point( position=position_jitter(width=1,height=.5)) + theme_bw() + stat_smooth(aes(group=1), method = "lm",color="red",se=F)
ggplotly(plt)
#Plot: Degree of Gene in Mature Leaf Restricted vs Degree in Base Network
temp2 = data.frame(Degree_Initial = d[names(d) %in% names(d2)], Degree_Restricted = d2)
Gene2 = names(d2)
plt = ggplot(temp2, aes(x = Degree_Initial, y=Degree_Restricted,name=Gene2)) + geom_point( position=position_jitter(width=1,height=.5)) + theme_bw() + stat_smooth(aes(group=1), method = "lm",color="red",se=F)
ggplotly(plt)
d = k_list(g,conf,2)
visPlot(g,d,prg$vector)
d = k_list(sg1,conf,2)
visPlot(subgraph = sg1,communities = d,nodesize = pr1$vector)
d = k_list(sg2,conf,2)
visPlot(sg2,d,pr2$vector)
auth_t1 = data_frame(Gene = names(auth1$vector), Value = auth1$vector)
plt = ggplot(auth_t1, aes(x=Value))+geom_histogram(bins=100)+theme_bw()
ggplotly(plt)
auth_t2 = data_frame(Gene = names(auth2$vector), Value = auth2$vector)
plt = ggplot(auth_t2, aes(x=Value))+geom_histogram(bins=100)+theme_bw()
ggplotly(plt)
comm = V(sg1)$name %in% auth_t1$Gene[auth_t1$Value>0.5]
comm = 1*comm + 1
visPlot(sg1, comm, pr1$vector)
comm = V(sg2)$name %in% auth_t2$Gene[auth_t2$Value>0.5]
comm = 1*comm + 1
visPlot(sg2, comm, pr2$vector)
tg = diff_plot(sg1,sg2)
visPlot2(tg,communities = E(tg)$type1,nodesize = page_rank(tg)$vector)
LS0tDQp0aXRsZTogQXJhYmlkb3BzaXMgVGhhbGlhbmEgTWF0dXJlIExlYWYgYW5kIFdob2xlIFJvb3QgU3VyZmFjZSBSZWNlcHRvcnMgSW50ZXJhY3Rpb24NCiAgUGxvdHMNCm91dHB1dDoNCiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdA0KICBodG1sX2RvY3VtZW50Og0KICAgIGRmX3ByaW50OiBwYWdlZA0KICBwZGZfZG9jdW1lbnQ6IGRlZmF1bHQNCi0tLQ0KDQpgYGB7cn0NCiNGaWxlIENvbnRhaW5pbmcgc2VsZi1kZWZpbmVkIGZ1bmN0aW9ucyBmb3IgY3VzdG9taXphdGlvbg0Kc291cmNlKCJHZW5lcmljLlIiKQ0KDQpkZiA9IHJlYWRfZXhjZWwoIlRyYXZhREIueGxzeCIsIHNoZWV0ID0gMSkgI1Rpc3N1ZSBEYXRhIA0KYmFzZSA9IHJlYWRfZXhjZWwoIk5ldHdvcmtfQ3V0b2ZmX0JhY2t1cC54bHN4IikgI0ludGVyYWN0aW9uIERhdGENCm1hcCA9IHJlYWRfZXhjZWwoIk1hcHBpbmcueGxzeCIpICAjR2VuZSBOYW1lIE1hcHBpbmcgRGF0YQ0KY29uZiA9IHJlYWRfZXhjZWwoIktub3duX0xSUi1STEtzLnhsc3giKQ0KDQpiYXNlID0gZGF0YV9ub3JtKGJhc2UsIGJhc2UgPSBUUlVFKSAjTm9ybWFsaXppbmcgRGF0YSBGcmFtZSBUaXRsZQ0KYmFzZSA9IG1hcHBlcihiYXNlLCBtYXApICAjTWFwcGluZyBHZW5lIE5pY2tuYW1lcyB0byBOYW1lcw0KZyA9IGdyYXBoX2Zyb21fZGF0YV9mcmFtZShiYXNlLCBkaXJlY3RlZCA9IEZBTFNFLCB2ZXJ0aWNlcyA9IE5VTEwpICAjQ29uc3RydWN0aW5nIEludGVyYWN0aW9uIE5ldHdvcmsNCg0KYV9yID0gZGF0YS5mcmFtZShHZW5lID0gZGYkR2VuZSwgVmFsdWUgPSAoZGYkYFJvb3QgKFIgKS4uLjdgK2RmJGBSb290IChSICkuLi43NmApLzIpICAjV2hvbGUgUm9vdCANCmFfbCA9IGRhdGEuZnJhbWUoR2VuZSA9IGRmJEdlbmUsIFZhbHVlID0gKGRmJGBMZWFmLCBtYXR1cmUgKEwubGcpLi4uMThgICsgZGYkYExlYWYsIG1hdHVyZSAoTC5sZykuLi44N2ApLzIpICNMZWFmDQoNCnNnMSA9IHJlc3Rfc3ViZ3JhcGgoZywgYmFzZSwgYV9yLCAxLCBGKSAgI1N1YmdyYXBoIGZvciBSb290DQpzZzIgPSByZXN0X3N1YmdyYXBoKGcsIGJhc2UsIGFfbCwgMSwgRikgICNTdWJncmFwaCBmb3IgTGVhZg0KDQojRXNzZW50aWFsIFBhcmFtZXRlcnMgb2YgdGhlIFN1YmdyYXBoDQpjZyA9IGNsdXN0ZXJfd2Fsa3RyYXAoZywgc3RlcHMgPSA4KQ0KYzEgPSBjbHVzdGVyX3dhbGt0cmFwKHNnMSwgc3RlcHMgPSA4KQ0KYzIgPSBjbHVzdGVyX3dhbGt0cmFwKHNnMiwgc3RlcHMgPSA4KQ0KDQpwcmcgPSBwYWdlX3JhbmsoZywgZGlyZWN0ZWQgPSBGKQ0KcHIxID0gcGFnZV9yYW5rKHNnMSwgZGlyZWN0ZWQgPSBGKQ0KcHIyID0gcGFnZV9yYW5rKHNnMiwgZGlyZWN0ZWQgPSBGKQ0KDQpiID0gYmV0d2Vlbm5lc3MoZywgZGlyZWN0ZWQgPSBGKQ0KYjEgPSBiZXR3ZWVubmVzcyhzZzEsIGRpcmVjdGVkID0gRikNCmIyID0gYmV0d2Vlbm5lc3Moc2cyLCBkaXJlY3RlZCA9IEYpDQoNCmQgPSBEZWdyZWUgPSBkZWdyZWUoZykNCmQxID0gRGVncmVlID0gZGVncmVlKHNnMSkNCmQyID0gRGVncmVlID0gZGVncmVlKHNnMikNCg0KYXV0aCA9IGF1dGhvcml0eV9zY29yZShnKQ0KYXV0aDEgPSBhdXRob3JpdHlfc2NvcmUoc2cxKQ0KYXV0aDIgPSBhdXRob3JpdHlfc2NvcmUoc2cyKQ0KDQpgYGANCmBgYHtyfQ0KI09yaWdpbmFsIE5ldHdvcmsNCnNob3codmlzUGxvdChnLCBjZyRtZW1iZXJzaGlwLCBwcmckdmVjdG9yKSkNCmBgYA0KDQoNCmBgYHtyfQ0KI1Bsb3Q6IEZQS00gV2hvbGUgUm9vdCBvdmVyIDIgc2FtcGxlcw0KZ2dwbG90KGRmLCBhZXMoeD1gUm9vdCAoUiApLi4uN2AseT1gUm9vdCAoUiApLi4uNzZgKSkrZ2VvbV9wb2ludCgpK3RoZW1lX2J3KCkgKyBzdGF0X3Ntb290aChhZXMoZ3JvdXA9MSksIG1ldGhvZCA9ICJsbSIsY29sb3I9InJlZCIsc2U9RikNCmBgYA0KDQoNCmBgYHtyfQ0KI1Bsb3Q6IEZQS00gTWF0dXJlIExlYWYgb3ZlciAyIHNhbXBsZXMNCmdncGxvdChkZiwgYWVzKHg9YExlYWYsIG1hdHVyZSAoTC5sZykuLi4xOGAseT1gTGVhZiwgbWF0dXJlIChMLmxnKS4uLjg3YCkpK2dlb21fcG9pbnQoKSt0aGVtZV9idygpICtzdGF0X3Ntb290aChhZXMoZ3JvdXA9MSksIG1ldGhvZCA9ICJsbSIsY29sb3I9InJlZCIsc2U9RikNCmBgYA0KDQoNCmBgYHtyfQ0KI0hpc3RvZ3JhbSBvZiBGUEtNIERpc3RyaWJ1dGlvbjogV2hvbGUgUm9vdCAoQXZlcmFnZWQpDQpnZ3Bsb3QoYV9yLGFlcyh4PVZhbHVlKSkrZ2VvbV9oaXN0b2dyYW0oYmlucyA9IDEwMCkrdGhlbWVfYncoKQ0KYGBgDQoNCg0KYGBge3J9DQojSGlzdG9ncmFtIG9mIEZQS00gRGlzdHJpYnV0aW9uOiBNYXR1cmUgTGVhZiAoQXZlcmFnZWQpDQpnZ3Bsb3QoYV9sLGFlcyh4PVZhbHVlKSkrZ2VvbV9oaXN0b2dyYW0oYmlucyA9IDEwMCkrdGhlbWVfYncoKQ0KYGBgDQoNCg0KYGBge3J9DQojTmV0d29yazogV2hvbGUgUm9vdCBSZXN0cmljdGVkDQpzaG93KHZpc1Bsb3Qoc2cxLCBjMSRtZW1iZXJzaGlwLCBwcjEkdmVjdG9yKSkNCmBgYA0KDQoNCmBgYHtyfQ0KI05ldHdvcms6IE1hdHVyZSBMZWFmIFJlc3RyaWN0ZWQNCnNob3codmlzUGxvdChzZzIsIGMyJG1lbWJlcnNoaXAsIHByMiR2ZWN0b3IpKQ0KYGBgDQoNCg0KYGBge3J9DQojUGxvdDogUGFnZXJhbmsgVmFsdWVzIG9mIEdlbmUgaW4gV2hvbGUgUm9vdCBSZXN0cmljdGVkIHZzIFBhZ2VyYW5rIGluIEJhc2UgTmV0d29yaw0KY29tcDEgPSBkYXRhLmZyYW1lKFBhcmVudCA9IHByZyR2ZWN0b3JbbmFtZXMocHJnJHZlY3RvcikgJWluJSBuYW1lcyhwcjEkdmVjdG9yKV0sIFJlc3RyaWN0ZWQgPSBwcjEkdmVjdG9yKQ0KR2VuZSA9IHJvd25hbWVzKGNvbXAxKQ0KcGx0ID0gZ2dwbG90KGNvbXAxLCBhZXMoeD1QYXJlbnQseT1SZXN0cmljdGVkLG5hbWU9R2VuZSkpICsgZ2VvbV9wb2ludCgpICsgdGhlbWVfYncoKSArIHN0YXRfc21vb3RoKGFlcyhncm91cD0xKSwgbWV0aG9kID0gImxtIixjb2xvcj0icmVkIixzZT1GKQ0KZ2dwbG90bHkocGx0KQ0KYGBgDQoNCg0KYGBge3J9DQojUGxvdDogUGFnZXJhbmsgVmFsdWVzIG9mIEdlbmUgaW4gTWF0dXJlIExlYWYgUmVzdHJpY3RlZCB2cyBQYWdlcmFuayBpbiBCYXNlIE5ldHdvcmsNCmNvbXAyID0gZGF0YS5mcmFtZShQYXJlbnQgPSBwcmckdmVjdG9yW25hbWVzKHByZyR2ZWN0b3IpICVpbiUgbmFtZXMocHIyJHZlY3RvcildLCBSZXN0cmljdGVkID0gcHIyJHZlY3RvcikNCkdlbmUgPSByb3duYW1lcyhjb21wMikNCnBsdCA9IGdncGxvdChjb21wMiwgYWVzKHg9UGFyZW50LHk9UmVzdHJpY3RlZCxuYW1lPUdlbmUpKSArIGdlb21fcG9pbnQoKSArIHRoZW1lX2J3KCkgKyBzdGF0X3Ntb290aChhZXMoZ3JvdXA9MSksIG1ldGhvZCA9ICJsbSIsY29sb3I9InJlZCIsc2U9RikNCmdncGxvdGx5KHBsdCkNCmBgYA0KDQoNCmBgYHtyfQ0KI1Bsb3Q6IERlZ3JlZSBvZiBHZW5lIGluIFdob2xlIFJvb3QgUmVzdHJpY3RlZCB2cyBEZWdyZWUgaW4gQmFzZSBOZXR3b3JrDQp0ZW1wMSA9IGRhdGEuZnJhbWUoRGVncmVlX0luaXRpYWwgPSBkW25hbWVzKGQpICVpbiUgbmFtZXMoZDEpXSwgRGVncmVlX1Jlc3RyaWN0ZWQgPSBkMSkNCkdlbmUxID0gbmFtZXMoZDEpDQpwbHQgPSBnZ3Bsb3QodGVtcDEsIGFlcyh4ID0gRGVncmVlX0luaXRpYWwsIHk9RGVncmVlX1Jlc3RyaWN0ZWQsbmFtZT1HZW5lMSkpICsgZ2VvbV9wb2ludCggcG9zaXRpb249cG9zaXRpb25faml0dGVyKHdpZHRoPTEsaGVpZ2h0PS41KSkgKyB0aGVtZV9idygpICsgc3RhdF9zbW9vdGgoYWVzKGdyb3VwPTEpLCBtZXRob2QgPSAibG0iLGNvbG9yPSJyZWQiLHNlPUYpDQpnZ3Bsb3RseShwbHQpDQpgYGANCg0KDQpgYGB7cn0NCiNQbG90OiBEZWdyZWUgb2YgR2VuZSBpbiBNYXR1cmUgTGVhZiBSZXN0cmljdGVkIHZzIERlZ3JlZSBpbiBCYXNlIE5ldHdvcmsgDQp0ZW1wMiA9IGRhdGEuZnJhbWUoRGVncmVlX0luaXRpYWwgPSBkW25hbWVzKGQpICVpbiUgbmFtZXMoZDIpXSwgRGVncmVlX1Jlc3RyaWN0ZWQgPSBkMikNCkdlbmUyID0gbmFtZXMoZDIpDQpwbHQgPSBnZ3Bsb3QodGVtcDIsIGFlcyh4ID0gRGVncmVlX0luaXRpYWwsIHk9RGVncmVlX1Jlc3RyaWN0ZWQsbmFtZT1HZW5lMikpICsgZ2VvbV9wb2ludCggcG9zaXRpb249cG9zaXRpb25faml0dGVyKHdpZHRoPTEsaGVpZ2h0PS41KSkgKyB0aGVtZV9idygpICsgc3RhdF9zbW9vdGgoYWVzKGdyb3VwPTEpLCBtZXRob2QgPSAibG0iLGNvbG9yPSJyZWQiLHNlPUYpDQpnZ3Bsb3RseShwbHQpDQpgYGANCg0KYGBge3J9DQpkID0ga19saXN0KGcsY29uZiwyKQ0KdmlzUGxvdChnLGQscHJnJHZlY3RvcikNCmBgYA0KDQpgYGB7cn0NCmQgPSBrX2xpc3Qoc2cxLGNvbmYsMikNCnZpc1Bsb3Qoc3ViZ3JhcGggPSBzZzEsY29tbXVuaXRpZXMgPSBkLG5vZGVzaXplID0gcHIxJHZlY3RvcikNCmBgYA0KDQpgYGB7cn0NCmQgPSBrX2xpc3Qoc2cyLGNvbmYsMikNCnZpc1Bsb3Qoc2cyLGQscHIyJHZlY3RvcikNCmBgYA0KDQpgYGB7cn0NCmF1dGhfdDEgPSBkYXRhX2ZyYW1lKEdlbmUgPSBuYW1lcyhhdXRoMSR2ZWN0b3IpLCBWYWx1ZSA9IGF1dGgxJHZlY3RvcikNCnBsdCA9IGdncGxvdChhdXRoX3QxLCBhZXMoeD1WYWx1ZSkpK2dlb21faGlzdG9ncmFtKGJpbnM9MTAwKSt0aGVtZV9idygpDQpnZ3Bsb3RseShwbHQpDQpgYGANCmBgYHtyfQ0KYXV0aF90MiA9IGRhdGFfZnJhbWUoR2VuZSA9IG5hbWVzKGF1dGgyJHZlY3RvciksIFZhbHVlID0gYXV0aDIkdmVjdG9yKQ0KcGx0ID0gZ2dwbG90KGF1dGhfdDIsIGFlcyh4PVZhbHVlKSkrZ2VvbV9oaXN0b2dyYW0oYmlucz0xMDApK3RoZW1lX2J3KCkNCmdncGxvdGx5KHBsdCkNCmBgYA0KDQpgYGB7cn0NCmNvbW0gPSBWKHNnMSkkbmFtZSAlaW4lIGF1dGhfdDEkR2VuZVthdXRoX3QxJFZhbHVlPjAuNV0NCmNvbW0gPSAxKmNvbW0gKyAxDQp2aXNQbG90KHNnMSwgY29tbSwgcHIxJHZlY3RvcikNCmBgYA0KDQpgYGB7cn0NCmNvbW0gPSBWKHNnMikkbmFtZSAlaW4lIGF1dGhfdDIkR2VuZVthdXRoX3QyJFZhbHVlPjAuNV0NCmNvbW0gPSAxKmNvbW0gKyAxDQp2aXNQbG90KHNnMiwgY29tbSwgcHIyJHZlY3RvcikNCmBgYA0KDQoNCmBgYHtyfQ0KdGcgPSBkaWZmX3Bsb3Qoc2cxLHNnMikNCnZpc1Bsb3QyKHRnLGNvbW11bml0aWVzID0gRSh0ZykkdHlwZTEsbm9kZXNpemUgPSBwYWdlX3JhbmsodGcpJHZlY3RvcikNCmBgYA0KDQo=